#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :IO.py
# @Time      :2021/4/26 14:13
# @Author    :Letquit
"""
文件说明：IO编程

"""
# IO编程
# IO在计算机中指Input/Output，也就是输入和输出
# 往外发数据，叫Output，从外面接收数据，叫Input

# 程序完成IO操作会有Input和Output两个数据流
# 从磁盘读取文件到内存，就只有Input操作，反过来，把数据写到磁盘文件里，就只是一个Output操作

# IO编程中，Stream（流）是一个很重要的概念，可以把流想象成一个水管，
# 数据就是水管里的水，但是只能单向流动。
# Input Stream就是数据从外面（磁盘、网络）流进内存，
# Output Stream就是数据从内存流到外面去。

# 由于CPU和内存的速度远远高于外设的速度，所以，在IO编程中，就存在速度严重不匹配的问题
# 第一种是CPU等着，也就是程序暂停执行后续代码，等100M的数据在10秒后写入磁盘，再接着往下执行，这种模式称为同步IO；
# 另一种方法是CPU不等待，只是告诉磁盘，“您老慢慢写，不着急，我接着干别的事去了”，
# 于是，后续代码可以立刻接着执行，这种模式称为异步IO。

# 同步和异步的区别就在于是否等待IO执行的结果
# 很明显，使用异步IO来编写程序性能会远远高于同步IO，但是异步IO的缺点是编程模型复杂
# 异步IO的复杂度远远高于同步IO
# 操作IO的能力都是由操作系统提供的，每一种编程语言都会把操作系统提供的低级C接口封装起来方便使用，Python也不例外

if __name__ == "__main__":
    run_code = 0
